문제

문자열 str이 주어집니다. 문자열을 시계방향으로 90도 돌려서 아래 입출력 예와 같이 출력하는 코드를 작성해 보세요.

제한사항

  • 1 ≤ str의 길이 ≤ 10

입출력 예

입력 #1

abcde

출력 #1

a
b
c
d
e

코드

const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

let input = [];

rl.on('line', function (line) {
  input = [line];
}).on('close', function () {
  str = input[0];

  answer = [];

  const nStr = [...str];

  nStr.map((a) => {
    answer.push(a);
    console.log(a);
  });
});

JS 함수

map()

  • for문 대신 사용할 수 있다.
  • 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열을 반환한다.

구조분해할당

  • 구조 분해 할당 구문은 배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 Javascript 표현식이다.

코드 해설

입력 부분

  • 한줄씩 입력 받은 후 line에 값이 저장된다.
  • input 배열에 line을 저장한다.

출력 부분

  • 변수 str에 input 0번째 인덱스를 저장한다.
  • 새로운 배열 answer를 선언한다.
  • 새로운 변수 nStr에 str 값을 구조분해 할당으로 배열에 있는 값을 다 분해한다.
  • nStr를 map을 돌려 함수를 호출할 때마다 answer배열에 a값을 계속 push해 저장하고 출력한다.